package com.coupon.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.coupon.admin.entity.Coupon;
import com.coupon.admin.dto.CouponCreateDTO;
import com.coupon.admin.dto.CouponUpdateDTO;
import com.coupon.admin.dto.CouponQueryDTO;

import java.util.List;

/**
 * 优惠券服务接口
 */
public interface CouponService extends IService<Coupon> {
    
    /**
     * 创建优惠券
     */
    Long createCoupon(CouponCreateDTO createDTO);
    
    /**
     * 更新优惠券
     */
    boolean updateCoupon(Long id, CouponUpdateDTO updateDTO);
    
    /**
     * 发布优惠券
     */
    boolean publishCoupon(Long id);
    
    /**
     * 停用优惠券
     */
    boolean stopCoupon(Long id);
    
    /**
     * 删除优惠券
     */
    boolean deleteCoupon(Long id);
    
    /**
     * 分页查询优惠券
     */
    IPage<Coupon> getCouponPage(Page<Coupon> page, CouponQueryDTO queryDTO);
    
    /**
     * 获取优惠券详情
     */
    Coupon getCouponDetail(Long id);
    
    /**
     * 批量操作优惠券
     */
    boolean batchOperateCoupons(List<Long> ids, String operation);
    
    /**
     * 获取券效分析数据
     */
    Object getCouponEffectAnalysis(Long couponId);
    
    /**
     * 检查券是否可以编辑
     */
    boolean canEditCoupon(Long id);
    
    /**
     * 更新券的AI推荐权重
     */
    boolean updateAiWeight(Long id, Double weight);
}
